package cn.bs.busuo.account.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

@Data
@TableName("main_sight_order")
public class SightOrder implements Serializable {

    /**
     * 数据ID
     */
    @NotNull(message = "[数据ID]不能为空")
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("数据ID")
    private Long id;
    /**
     * 用户ID
     */
    @ApiModelProperty("用户ID")
    private Long buyerId;
    /**
     * 用户名
     */
    @Size(max = 50, message = "编码长度不能超过50")
    @ApiModelProperty("用户名")
    @Length(max = 50, message = "编码长度不能超过50")
    private String buyerUsername;
    /**
     * 景点ID
     */
    @ApiModelProperty("景点ID")
    private Long sightsId;
    /**
     * 景点门票名
     */
    @Size(max = 50, message = "编码长度不能超过50")
    @ApiModelProperty("景点门票名")
    @Length(max = 50, message = "编码长度不能超过50")
    private String ticketName;
    /**
     * 可用日期
     */
    @ApiModelProperty("可用日期")
    private Date usingDate;
    /**
     * 收货人
     */
    @Size(max = 32, message = "编码长度不能超过32")
    @ApiModelProperty("收货人")
    @Length(max = 32, message = "编码长度不能超过32")
    private String receiverName;
    /**
     * 收货电话
     */
    @Size(max = 32, message = "编码长度不能超过32")
    @ApiModelProperty("收货电话")
    @Length(max = 32, message = "编码长度不能超过32")
    private String receiverPhone;
    /**
     * 身份证
     */
    @Size(max = 32, message = "编码长度不能超过32")
    @ApiModelProperty("身份证")
    @Length(max = 32, message = "编码长度不能超过32")
    private String identity;
    /**
     * 商品数量
     */
    @ApiModelProperty("商品数量")
    private Integer goodsNum;
    /**
     * 商品销售总价
     */
    @ApiModelProperty("商品销售总价")
    private BigDecimal totalPrice;
    /**
     * 订单状态:0=就绪, 1=待支付，2=已支付，待发货, 3=已发货/待收货，4=确认收货/已完成,5=取消支付或支付失败
     */
    @ApiModelProperty("订单状态:0=就绪, 1=待支付，2=已支付，待发货, 3=已发货/待收货，4=确认收货/已完成,5=取消支付或支付失败")
    private Integer orderState;
    /**
     * 支付时间
     */
    @ApiModelProperty("支付时间")
    private Date gmtPay;
    /**
     * 数据创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty("数据创建时间")
    private LocalDateTime gmtCreate;
    /**
     * 数据最后修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty("数据最后修改时间")
    private LocalDateTime gmtModified;

}
